package org.smile.collection;
/**
 * 有最大长度的map 
 * 大于时先进先出
 * @author 胡真山
 *
 * @param <K>
 * @param <V>
 */
public class FixedLenHashMap<K,V> extends LinkedHashMap<K, V>{
	//最大长度
	protected int fixedLen;
	
	public FixedLenHashMap(int size){
		super(size);
		this.fixedLen=size;
	}
	
	@Override
	protected boolean removeEldestEntry(java.util.Map.Entry<K, V> eldest) {
		if(this.size()>fixedLen){
			onRemoveEldest(eldest.getKey(),eldest.getValue());
			return true;
		}
		return false;
	}

	/**
	 * 当移除最早一个元素的时候
	 * @param key
	 * @param eldest
	 */
	protected void onRemoveEldest(K key,V eldest){

	}

}
